Ext.define('Egitim.controller.TanimlarCtrl', {
	extend: 'Ext.app.Controller',
	views: ['tanimlar.EgitimKategoriTree', 'tanimlar.KullaniciForm', 'tanimlar.KullaniciList'],
	stores: ['Kullanici'],
	models: [],
	refs: [{
		ref: 'egitimKategoriTree',
		selector: 'egitimkategoritree'
	}],
	init: function() {

		this.control({
			'egitimkategoritree button[action=ekle]': {
				click: this.onKategoriEkle
			},
			'egitimkategoritree': {
				nodeedittamamlandi: this.onEgitimKategoriNodeEdit,
				silegitimkategori: this.onSilEgitimKategori
			},
			'kullaniciform button[action=tamam]': {
				click: this.onKullaniciEkle
			},
			'kullanicilist #search': {
				specialkey: this.onKullaniciListSearch
			},
			'kullanicilist': {
				afterrender: this.onAfterRender,
				silkullanici: this.onSilKullanici,
				guncellekullanici: this.onGuncelleKullanici
			}
		});
		
	},
	
	onAfterRender: function () {
		this.getKullaniciStore().load();
	},
	
	onSilKullanici: function (grid, record) {
		var kullaniciId = record.get('id');
		var me = this;
		Egitim.lib.Utility.waitMessage();
		Ext.Ajax.request({
			url: 'kullanicis/delete/' + kullaniciId,
			success: function(response){
				Ext.MessageBox.hide();
				var msg = Ext.JSON.decode(response.responseText).msg;
				Egitim.lib.Utility.infoMessage(msg);
				me.getKullaniciStore().load();
			},
			failure: function (response){
			
			}
		});
	},
	
	onGuncelleEgitmen: function (grid, record) {
		var egitmenId = record.get('id');
		Ext.create('Ext.window.Window', {
			title: 'Eğitmen ' + egitmenId,
			modal: true,
			height: 400,
			width: 500,
			layout: 'fit',
			maximizable: true,
			items: {  // Let's put an empty grid in just to illustrate fit layout
				xtype: 'egitmenpanel', //'egitmenform',
				egitmenId: egitmenId,
				title: '',
				border: false
			}
		}).show();
	},

	
	onKullaniciListSearch: function (field, e){
		if (e.getKey() == e.ENTER) {
			var form = field.up('form').getForm();
			//form.submit();
			//alert(form.getValues());
			this.getKullaniciStore().load({
				params: form.getValues()
			});
		}
	},
	
	onGuncelleEgitim: function (grid, record) {
		var kullaniciId = record.get('id');
		Ext.create('Ext.window.Window', {
			title: Ext.String.format('Kullanici [{0}] ', kullaniciId),
			modal: true,
			height: 400,
			width: 600,
			layout: 'fit',
			maximizable: true,
			items: {
				xtype: 'kullanicipanel',
				kullaniciId: kullaniciId,
				title: '',
				border: false
			}
		}).show();
	},

	onSilEgitimKategori: function (tree, record) {
		var text = record.get('text');
		
		Ext.Msg.confirm('Onay', text + ' Silinecek. Onaylıyor musunuz?', function(button) {
		    if (button === 'yes') {
				var egitimId = record.get('id');
				var me = this;
				Egitim.lib.Utility.waitMessage();
				Ext.Ajax.request({
					url: 'tanimlars/deleteEgitimKategori/' + egitimId,
					success: function(response){
						Ext.MessageBox.hide();
						var msg = Ext.JSON.decode(response.responseText).msg;
						Egitim.lib.Utility.infoMessage(msg);
						record.remove(true);
					},
					failure: function (response){
						alert(response);
					}
				});
		    }
		});
	},
	
	onEgitimKategoriNodeEdit: function (node, grid){
		//debugger;
		if (!node.record.isModified('text')) {
			return;
		}
		var parentId = node.record.parentNode.get('id'),
			ad = node.value,
			id = node.record.get('id'),
			yeniKayit = Ext.isEmpty(id); //guncelleme olup olmayaca�� �nemli!
		Egitim.lib.Utility.waitMessage();
		Ext.Ajax.request({
			url: 'tanimlars/saveEgitimKategori',
			method: 'POST',
			params: {
				parent_id: 'Root' == parentId ? null : parentId,
				ad: ad,
				id: Ext.isEmpty(id) ? null : id
			},
			success: function(response){
				Ext.MessageBox.hide();
				var respJson = Ext.JSON.decode(response.responseText),
					msg = respJson.msg,
					newId = respJson.newId;
				
				Egitim.lib.Utility.infoMessage(msg);
				if (yeniKayit) {
					node.record.set('id', newId);					
				}
			},
			failure: function (response){
				alert(response);
			}
		});		
		
	},

	onKategoriEkle: function (){
		var tree = this.getEgitimKategoriTree();
		var sm = tree.getSelectionModel();
		var m = sm.getSelection();
		if (m.length == 1 && !m[0].get('leaf')) {
			var recId = m[0].get('id');
			m[0].appendChild({
				text: 'Yeni',
				leaf: recId !== 'Root'
			});
		}
	},
	
	onKullaniciEkle: function (but){
		var form = but.up('form').getForm();
		alert(document.getElementById('form:sifre'));
		if (form.isValid()) {
			form.submit({
				success: function(form, action) {
					but.up('form').showMessage (1, action.result.msg);
				},
				failure: function(form, action) {
					but.up('form').showMessage (0, action.result.msg);
				}
			});
		}	
	}

});